home *** CD-ROM | disk | FTP | other *** search
- The X Terminal HOWTO
-
- How to connect an X terminal to a Linux PC
- Version 1.0 BETA (July 1995)
- Scot W. Stevenson <scot@catzen.gun.de>
-
-
- This document gives a brief introduction to how to connect an X terminal
- to a Linux PC. It assumes a basic knowledge of the X Window System,
- TCP/IP addressing, and ethernet cards.
-
-
- 1.0 Introduction
-
- This is the first version of the document and should be considered BETA.
- It is more of a been-there, done-that text than a comprehensive treatment.
- Discussions of access control mechanisms (e.g. xaccess, xhost,
- MIT-COOKIEs), and the use of NFS, are not yet included.
-
- Most X terminals now have a whole host of advanced features which allow
- them to be more than mere X servers. For the most part, these features
- will be ignored.
-
-
- 1.1 Changes from previous versions
-
- (There are no previous versions, so everything was changed)
-
-
- 1.2 Disclaimers
-
- Neither the author nor the distributors of this HOWTO are in any way
- responsible for physical, financial, or moral damage incurred by
- following the suggestions in this text. In short: "Yea though I talk...."
-
-
- 1.3 Copyright
-
- The Linux Xterminal HOWTO is copyrighted (C) 1995 by Scot W. Stevenson.
- Linux HOWTO documents may be reproduced and distributed in whole or in
- part, in any medium physical or electronic, as long as this copyright
- notice is retained on all copies. Commercial redistribution is allowed
- and encouraged. The author, however, would like to be notified of any
- such distributions.
-
- All translations, derivative works, or aggregate works incorporating
- any Linux HOWTO documents must be covered under this copyright notice.
- In othe words, you may not produce a derivative work from a HOWTO and
- impose additional restrictions on its distribution. Exceptions to these
- rules may be granted under certain conditions.
-
- In short, we wish to promote dissemination of this information through
- as many channels as possible. However, we do wish to retain copyright
- on the HOWTO documents, and would like to be notified of any plans to
- redistribute the HOWTOs.
-
- Should you have any questions, please contact Greg Hankins, the Linux
- HOWTO coordinator, at gregh@sunsite.unc.edu. You may finger his address
- for phone number and additional contact information.
-
-
- 1.3 New Versions and Feedback
-
- New versions of this document can be found on sunsite.unc.edu in
- the /pub/Linux/docs/HOWTO/ directory. If you do not have FTP
- access, you can try to get Linux Help Files via Bill Riemers. Send
- email to bcr@physics.purdue.edu with a subject of "help" for more
- infomation and an index file.
-
- Any additions to, corrections of, or comments about this document would
- be most welcomed! Please send email to
-
- scot@catzen.gun.de (Scot W. Stevenson)
-
- I would especially like to hear from you if you already have experience
- with linking an X terminal to a Linux machine, even if is only something
- like "worked on this machine with this terminal."
-
- On the board for the next versions are access control mechanisms and
- the use of NFS filesystems for booting.
-
-
- 2.0 Background
-
- This section provides some very basic information for those not familiar
- with the X Window System and its terminal-ology. If you have at least
- some experience with X and X terminals, you should be able to skip
- this part with no ill effects.
-
-
- 2.1 What is X?
-
- The X Window System, or just X (never X Windows), is "a portable,
- network-transparent window system" as the man page has it. It provides
- a graphic environment that cuts across operating systems, vendors, and
- hardware types. When people talk about a window system in connection with
- Unix, they almost always mean X.
-
- The most important characteristic of X in our case is the strict
- division between the programs that control the local hardware that the
- user interfaces with (screen, keyboard, mouse, etc.), and those programs
- the user actually wants to run (editor, spreadsheet, DOOM). This means
- that the interface software, which is called the X server, can be
- on a one machine, while the actual programs, or X clients, can be on
- one or even more than one machine at a totally different location.
- Note that the terms "server" and "client" are used in the reverse sense
- of what they usually are.
-
- Linux comes with a collection of X servers from the XFree86 project,
- that is, servers for SVGA Video cards, as well as a whole host of X
- clients such as xv, maze, and xterm. If you are new to X, you might
- want to get some hands-on experience with X on the Linux machine before
- attempting to link up an X terminal.
-
-
- 2.2 What is an X terminal?
-
- An X terminal (referred to as XT from now on) is a specialized piece of
- hard- and software which combine into an X server, that is, the part of
- X that manages in- and output to and from the user. In the most
- primitive case, only the X server program and communcication software are
- included. Even the window manager comes from the host computer, to which
- the XT is connected by ethernet (or in rare cases serial lines), using
- TCP/IP.
-
- The hardware of an XT will include at least a (large) screen, keyboard,
- mouse, some RAM, and jacks for ethernet cables. Most XTs do not have a
- hard disk, a floppy drive, or other such means of data transfer.
- This means that the XT either has its operating system in ROM (rare),
- or gets it from a host on the net that it is attached to.
-
- To get to its operating system from the Linux computer at boot time,
- the XT usually does something like this: It sends out a cry of help
- through the net with its ethernet number as a name tag. A "real" computer
- on the net compares this number with a list of them, and if a match
- is found, sends the XT the IP number it has been assigned to (via the
- bootpd daemon). This allows the XT to download its operating system and
- other data it needs from the hard disk of the host computer (usually via
- tftp). This is the procedure explained here in detail.
-
- An XT is therefore actually a full-fledged computer, with its own IP
- number, RAM, program, and independent hardware, albeit more like
- an idiot savant. It's great at what it does best, managing X graphics,
- but not much good for anything else.
-
-
- 2.3 Advantages and Disadvantages
-
- Ideally, an XT is silent, swift, and deadly. Usually without fan, floppy
- or hard disk, they make no noise at all, and with a few meters of
- ethernet cable you can put your loudish computer in a different room and
- have the silent XT on your desk. Since the XT is built for X and graphics,
- it is faster than, say, an X server program unter MS Windows or DOS.
-
- With the server on one machine and the client on another, the processor
- doesn't have to handle both at once. Though this might not be noticable
- in terms of speed (since the data now has to be moved over the ethernet),
- it will reduce the CPU load and save memory on the Linux machine that
- would otherwise be swallowed by the X server.
-
- On the flip side, you will need an ethernet card, which usually means
- giving up a slot and an IRQ. Depending on the manufacturer, the software
- for the XT can take up around 20 MBytes of hard disk space on your Linux
- machine. You can almost always delete a lot of unused stuff once you
- figure out what is really needed. Most XTs will require the host machine
- to have the bootpd and tftpd daemons installed and running - both are
- potential security holes. You will probably want to have a further daemon,
- xdm, running in the background. And yes, that big XT screen will take up
- a lot of desk space.
-
-
- 2.4 What do I need?
-
- Kind of you to ask! But more appropriately, what do you need?
-
- First of all, you need an XT. If you have lots of money, and we do mean
- lots, you can go out and buy one. Jim Morton <jim@applix.com> posts
- a list of XTs and their prices to comp.windows.x on a regular basis.
- Or fortune might smile on you. Since old XTs can't be used with DOS,
- MS Windows, or OS/2, some firms solve the problem of what to do with
- their old ones by just throwing them out.
-
- On the Linux computer side, you will need an ethernet card. Though it
- is in theory possible to run an XT via serial line and SLIP, this is
- not recommended unless you have masochistic tendencies. Check out the
- Ethernet-HOWTO maintained by Paul Gortmaker <Paul.Gortmaker@anu.edu.au>
- on how to purchase and set up ethernet cards. SLIP und CSLIP are covered
- in the same document, should you have no other choice. In this case, you
- might also want to look at the Serial-HOWTO by Greg Hankins
- <gregh@cc.gatech.edu> for information on how to get the best performance.
-
- You will also need to have TCP/IP support compiled into the kernel,
- as well as a IP number for at least your machine and the XT. The
- Net-2-HOWTO by Terry Dawson <terryd@extro.ucc.su.oz.au> covers this.
-
- Finally, you will need to have X installed on you Linux machine. In
- theory you should be able to have just the X clients and programs
- like xdm installed, without the servers package. But it is probably
- not worth the effort to untangle the various parts. The XFree86 HOWTO
- by Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de> will tell you how
- to get X up and working.
-
-
- 3.0 Cables, Nets and Daemons
-
- This section discusses the changes to hard- and software required to
- get the XT connected to the Linux machine. Some conventions are that
- the XT is called "whisper" (because it makes no sound), and the Linux
- host machine "imlinux" (I am Linux). They are both part of the
- "frog" domain in Germany (".de"). Their IP numbers are
-
- 192.168.13.1 for imlinux.frog.de (the Linux machine)
- 192.168.13.41 for whisper.frog.de (the XT linked to it).
-
- Note that these are standalone IP numbers for systems not connected to
- the greater Internet, and that to my knowledge there is no frog domain
- in Germany. We will assume that there are no other machines on the net,
- and that NFS is not installed.
-
- [Bummer. If someone has used NFS in connection with his or her XT, I'd
- love to hear from you.]
-
-
- 3.1 Physical connection
-
- This should be as easy as plugging cables into both machines. Please note
- that some XTs have two serial inputs that can only run at certain speeds
- if both are in use. Check your XT manual for details. You will need the
- ethernet number of the XT later on. It is displayed during boot of the
- XT, even if no connection is yet established.
-
- As soon as you have the wires in place, you should be able to test the
- ethernet link. After booting the XT, it should start off by complaining
- that its calls for a bootpd and/or tftpd are not being answered, and
- then start a boot operating system (usually part of the XT ROM). This
- should include a primitive ping command which will allow you to test
- the ethernet from the XT to the Linux machine. Don't panic if it
- doesn't work the other way around yet. The XT probably needs its full
- operating system to be able to respond.
-
-
- 3.2 Configuring the Net
-
- Your basic configuration needs should be covered by the Net2-HOWTO as
- mentioned above. We'll assume here that you already have TCP/IP and
- such up and running. Since the XT is considered to be just another
- computer on the net, you will now have to make sure both Linux machine
- and XT know each other's IP address and that of the net they are on.
-
-
- 3.2.1 Configuring the Linux Machine
-
- Information on the XT will have to be included in at least these files:
-
- /etc/hosts Add a line with the IP number of the XT, such as
-
- # /etc/hosts line for Linux machine. lprhost and loghost
- # are optional
- 192.168.13.1 imlinux imlinux.frog.de lprhost loghost
- # The new line for the XT is next
- 192.168.13.41 whisper whisper.frog.de
-
- /etc/ethers This file provides a list of ethernet numbers and the
- corresponding host names. This does not seem to be needed
- in all distributions and setups, but in case it is, you
- will need to include the ethernet number of the
- XT and its hostname. This would be something like
-
- 04:03:e8:cc:0d:24 imlinux
- 0f:03:11:31:45:f1 whisper
-
- (Yes, the ethernet numbers are fakes)
-
- [You might have to change further files if you are running programs like
- named, routed, or gated. As I am not, I would be grateful if someone
- could fill me in on which files, if any, must be modified.]
-
- You will have to reboot your Linux machine to make sure all changes
- take effect.
-
-
- 3.2.2 Configuring the X Terminal
-
- Check your XT manual for which files will have to be edited. In my case,
- there was a central configuration file which needed to have the
- following entries changed:
-
- ip_host_table 192.168.13.1 imlinux
- ip_host_table 192.168.13.1 imlinux.frog.de
- ip_host_table 192.168.13.41 whisper
- ip_host_table 192.168.13.41 whisper.frog.de
-
- file_access_1 TFTP
- file_host_name_1 imlinux.frog.de
- file_path_1 /usr/local/xterm/liveshere
-
- display_access_table whisper
- display_access_table imlinux
- enable_access_control YES
-
- xdmcp_server imlinux
- broadcast_address 192.168.13.255
- default_telnet_host imlinux
-
- Note that the XT picks up its files via tftp from the directory
- /usr/local/xterm/liveshere, and the terminal is able to do XDMCP
- (important for the configuration of xdm).
-
- There will also be other configurations files for things like fonts. You
- should be able to use the fonts already installed with Linux. In my case,
- the file for the fonts (font.tbl) looks something like this
-
- /usr/lib/X11/fonts/75dpi
- /usr/lib/X11/fonts/100dpi
- ...
- /usr/local/xterm/misc
- /usr/local/xterm/openlook
-
- with a few more lines to the same effect. Later, when the XT boots off
- the Linux machine, you should see a list of files it has successfully
- loaded.
-
- Another thing you will probably want to have on your XT is "backing
- store," which means that those window parts covered by other windows
- are not stored in the Linux' RAM, but in that of the XT. Check your
- XT manual for further details.
-
-
- 3.3 bootpd
-
- Bootpd is the daemon that hears the X terminal's cry for help
- at boot time and responds by telling the XT who it is, and where
- it can find the software it wants to download. For some odd reason
- bootpd is not included in some current distributions, notably
- Slackware 2.2.0.1. This means you will have to get it via FTP or
- some other source. It should then be placed in /usr/sbin/ (not in
- /etc, as the man page would have it) as in.bootpd. Add or uncomment
- the following line in /etc/inetd.conf:
-
- bootps dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.bootpd
-
- This will ensure that inetd can start bootpd if a boot request
- is found.
-
- The configuration file for bootpd is /etc/bootpd. The syntax is
- explained in the man page. In our example, the /etc/bootpd file should
- look something like this ("server" is now used in the classical sense
- again):
-
- # Sample /etc/bootpd file
- # First, global entry for stuff every host uses
- allhost:hd=/usr/local/xterm/liveshere:\ # Home directory XT software
- :ds=192.168.13.1:\ # Domain name server (imlinx)
- :sm=255.255.255.0:\ # Subnet mask
- :gw=192.168.13.1:\ # Gateways
- :ts=192.168.13.1:\ # Time Servers
- :lp=192.168.13.1:\ # lpr Servers
- :to=-7200: # Time Offset in seconds
- # Next, individual entries of every single host. Futher XTs would
- # have their own entry
- whisper:ht=ethernet:\ # Type of hardware link
- :ha=0f03113145f1:\ # Ethernet number of X terminal
- :ip=192.168.13.41:\ # IP number of X terminal (whisper)
- :tc=allhost:\ # Template for standard options as above
- :bf=xtermOS: # Boot file name - the X terminal's OS
-
- The name of the XT's operating system may not be included as part of the
- hd (home directory) entry. In our example, the file that the XT grabs
- as its operating system is /usr/local/xterm/liveshere/xtermOS, but the
- hd entry is /usr/local/xterm/liveshere.
-
- bootpd will write information to both /var/adm/syslog and
- /var/adm/messages, which should look something like this after a
- successful boot:
-
- Jul 17 05:19:42 imlinux in.bootpd[110]: connect from 0.0.0.0
- Jul 17 05:19:42 imlinux bootpd[110]: reading "/etc/bootptab"
- Jul 17 05:19:42 imlinux bootpd[110]: read 2 entries from "/etc/bootptab"
- Jul 17 05:19:43 imlinux bootpd[110]: request from hardware address
- 0F03113145F1 Type 1
- Jul 17 05:19:43 imlinux bootpd[110]: found 192.168.13.41 whisper
-
- After helping the XT to boot, bootpd will stick around for about
- 15 minutes, then remove itself if there is no further work to do.
-
-
- 3.4 tftpd
-
- The Trivial File Transfer Program is used by the XT to load its
- operating system from a Linux hard disk. It should be included in
- every distribution and does not have a configuration file. You can
- test tftp by just typing "tftp" from a command shell.
-
- As with bootpd, you will have to include or uncomment the following line
- in /etc/inetd.conf:
-
- tftp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.tftpd
-
- Note that tftp can only access files that have world read access set.
- Note also that tftp is a potential security hole that you will have to
- keep in mind, and that the version of tftp included in some Linux
- packages does not include the -r (or -s) flags for more secure use.
-
- tftp will also write to /var/adm/messages. If bootpd has successfully
- done its stuff, the next lines should be something like
-
- Jul 17 05:19:43 imlinux in.tftpd[111]: connect from whisper
- Jul 17 05:19:58 imlinux in.tftpd[113]: connect from whisper
- Jul 17 05:19:59 imlinux in.tftpd[115]: connect from whisper
- Jul 17 05:20:00 imlinux in.tftpd[117]: connect from whisper
- Jul 17 05:20:03 imlinux in.tftpd[125]: connect from whisper
- Jul 17 05:20:05 imlinux in.tftpd[127]: connect from whisper
-
- and so on for quite a while. These are the files that the XT is requesting
- from its home directory on the Linux computer. You should see messages on
- the XT's screen while this transfer takes place.
-
-
- 3.5 Testing the link
-
- Once you have modified the files mentioned above, you should be able
- to boot the XT. Depending on the manufacturer, more or less verbose
- messages on the XT's screen will tell you what is happening. Look
- carefully for messages about files that cannot be found.
-
- If all is well, it should progress to the point where the XT can launch
- its own version of X. This means a grey background and the X cursor.
- If you already have xdm running on the Linux machine, it might even
- put up the xdm login prompt, though things might go a little haywire
- since some definitions are not in place yet. Be prepared to kill xdm as
- root from the Linux machine as a last resort.
-
- Most XTs have an inbuilt set of functions, like a telnet client, as
- part of their boot operating system. You can test the link further by
- telneting into the Linux computer.
-
- At this point, depending on how access is set up, you might also
- be able to start X programs on the XT by using the display option.
- From the Linux computer, try something like
-
- xclock -display whisper:0 &
-
- This should produce the xlock on the XT. You can even start a window
- manager such as fvwm this way.
-
-
- 4.0 X on the run
-
- This section deals with setting up xdm so that a login prompt is
- available on the XT, and will return when a user has logged out. The xdm
- program is a display manager that is the (very) rough equivalent of the
- login programs for normal terminals. It should be included in every
- Linux X package.
-
-
- 4.1 xdm configuration
-
- xdm's configuration files live in /usr/X11R6/lib/X11/xdm (/usr/X11R6 may
- be a link to /usr/X11). The main configuration file is xdm-config. You
- should find, among others, the following lines already in place:
-
- DisplayManager._0.authorize: true
- DisplayManager._0.setup: /usr/X11R6/lib/X11/xdm/Xsetup_0
- DisplayManager._0.startup: /usr/X11R6/lib/X11/xdm/GiveConsole
- DisplayManager._0.reset: /usr/X11R6/lib/X11/xdm/TakeConsole
-
- These are the files that control the screen when X is run on the Linux
- machine itself. For the XT, we add four lines of the same type:
-
- DisplayManager.whisper_0.authorize: true
- DisplayManager.whisper_0.setup: /usr/X11R6/lib/X11/xdm/Xsetup_whisper
- DisplayManager.whisper_0.startup: /usr/X11R6/lib/X11/xdm/Xstartup
- DisplayManager.whisper_0.reset: /usr/X11R6/lib/X11/xdm/Xreset
-
- Note that whisper_0 is the xdm notation for whisper:0, just as _0 is :0.
- Note also that GiveConsole has been replaced by Xstartup, which in my
- case is a dummy file, and TakeConsole by Xreset, is also a dummy file.
- The original files both control the ownership of the console when X is
- run on the Linux machine, and there is no reason to fool around with
- the Linux console just because the XT is running.
-
- The setup files run programs before the login prompt is placed on the
- screen. This is the place to, say, use xv or a similiar program to
- have a picture in the background. You should be able to simply copy
- the given Xsetup_0 file to Xsetup_whisper.
-
- [Since this question comes up again and again: One way of putting a
- picture in the root window is by placing the line
-
- nice xv -root -quit -rmode 5 <picture_file> &
-
- or such in the setup file. picture_file will then be displayed in
- the root window under the xdm login prompt. Note that some XTs will
- give an error message if the file is too large or too complex.]
-
- Xaccess controls who can have access to the machine. You should be able
- to leave the defaults as they are. Note hat Xaccess will let you greet
- the user with a chooser, in case you have different machines on the net
- that can service the XT.
-
- Xresources controls the shape and size of the login prompt. You might
- want to have different messages for the XT and Linux machine by
- replacing the
-
- DisplayManager*resources: /usr/X11R6/lib/X11/xdm/Xresources
-
- with two lines such as
-
- DisplayManager._0.resources: /usr/X11R6/lib/X11/xdm/Xres_0
- DisplayManager.whisper_0.resources: /usr/X11R6/lib/X11/xdm/Xres_wh_0
-
- where Xres_wh_0 is the name of the whisper resource file.
-
- You should be able to leave the Xsession file unchanged, too.
-
- Configuration of the Xservers file is slightly more tricky. Out of the
- box, there is probably only one line uncommented (Slackware 2.2.0.1)
-
- :0 local /usr/X11R6/bin/X
-
- or something to that effect. This starts the Linux machine X server
- when xdm is called. Commenting this line means that when xdm is called,
- there will be no X started on the Linux machine. This is what you need
- to do if you only want to have xdm managing the XT, but not the local
- Linux X server. In this case, X can still be started with startx at any
- time on the Linux machine with no ill effects found so far.
-
- If your XT does not have XDMCP, you must also include a line for the
- XT, such as
-
- whisper:0 foreign
-
- XDMCP is a standardized method that for example lets X terminals talk
- to their hosts. If your terminal does have XDMCP, don't repeat do not
- include that line here. This would make xdm think that there is an XT
- out there that doesn't know XDMCP, while at the same time a terminal
- with the same name is trying to get in, too. This can lead to all kinds
- of ugly effects, such as two xdms fighting for control.
-
- Note that you can use the xdm-config entries even if there is no line
- in Xservers for the XT, that is, you can still customize the xdm
- login prompt, etc, for a XT that uses XDMCP.
-
- To make xdm start with every reboot, you can include a line such as
-
- /usr/bin/X11/xdm
-
- in /etc/rc.d/rc.local. Other people start xdm with the /etc/inittab
- file. In any case, xdm should appear with the list of processes after
- a reboot of the Linux machine.
-
-
- 4.2 Access questions
-
- [BummerRank1. This is important, and we're working on it.]
-
- To see if a user can access the XT screen from the Linux machine,
- log in as non-root on the Linux machine and try a command like
-
- xsetroot -solid white -display whisper:0 &
- or
- xterm -display whisper:0 &
-
- Try this when somebody is logged in on the XT and when there is only the
- xdm login to be seen. Depending on where you are, the ability to put
- stuff on the XT screen from the console might more of a feature than a
- bug.
-
-
-
- 5.0 Errors, Unknowns, and Thanks
-
-
- 5.1 Known problems
-
- These are problems which have turned up, as well as interesting features
- that might be considered problems. If you have come up with any
- interesting features, or even solutions, please let me know.
-
- talk - The interactive chat will work if the user at the XT starts the
- session with a user at the Linux machine, but fails the other
- way around. I'm sure I read a fix for this once, but have
- forgotten it.
-
- who - A user logged in via the XT does not appear in the output of the
- who command, even if it is sent from the XT itself. This is
- probably the reason why talk fails when initiated from the Linux
- machine ("On an XT, nobody even knows you're a human").
-
- xlock - Normal call of xlock will only produce a message to the effect
- that the XT's screen can't be grabbed. The -remote option must
- be included in the xlock call to allow terminal locking. Note
- that some xlock modes are more resource hungry than others.
- Qix seems to be more suited for XTs than others - check out the
- FAQ by Art Mulder (below) for more details.
-
- xv - Some XTs will not have enough video memory to be able to handle
- large and/or complex colored background pictures. Try removing
- any old pictures (with `xsetroot' or such) and refreshing the
- screen before you move xv's window into the root.
-
-
- 5.2 Terminals tested
-
- The procedures described in this text have so far only been seriously
- tested on a Tektronix XP23 in connection with a 386DX-33MHz, 16 MByte
- RAM running Linux 1.2.3 and the XFree86 Version 3.1.1 files from the
- Slackware 2.2.0.1 distribution.
-
-
- 5.3 Futher reading
-
- More information on X can be found on the net as:
-
- David B. Lewis <dbl@ics.com> posts the detailed and extensive
- Comp.windows.x Frequently Asked Questions (FAQ) to comp.windows.x,
- news.answers, and comp.answers on a regular basis. This document also
- contains entries on where to get more information on X.
-
- Steve Kotsopoulos <steve@ecf.toronto.edu> posts the X on Intel-based Unix
- Frequently Asked Questions (FAQ) list to the same groups.
-
- Art Mulder <art@cs.ualberta.ca> maintains the Comp.windows.x: Getting
- more performance out of X FAQ, which is als posted regularly to these
- groups. It includes tips very useful for Linux under X, too.
-
-
-
- 5.4 Thanks
-
- First thanks, as always, go out to Linus B. Torvalds
- <torvalds@kruuna.helsinki.fi>. Futhermore to
-
- Klaus ter Fehn <ktf@bc3.gun.de>, for making it possible and
- Douglas K. Stevenson <duck@catzen.gun.de>, for making it passable.
-
-